﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace RS.Echarts.Models
{

    /// <summary>
    /// 表示图例控制块的图标配置类，用于可滚动翻页图例（legend.type为"scroll"时）。
    /// </summary>
    public class ScrollIcons
    {
        /// <summary>
        /// 向前翻页按钮的图标，可选值包括'circle'、'rect'、'roundRect'、'triangle'、'diamond'、'pin'、'arrow'、'none'，
        /// 也可以通过'image://url'设置为图片（URL为图片链接或dataURI），或者通过'path://'设置为任意的矢量路径。
        /// </summary>
        public string Prev { get; set; }

        /// <summary>
        /// 向后翻页按钮的图标，可选值及设置方式同Prev属性。
        /// </summary>
        public string Next { get; set; }

        /// <summary>
        /// 向前翻页按钮的图标宽度，单位为像素，用于设置向前翻页按钮图标的尺寸大小。
        /// </summary>
        public int PrevWidth { get; set; }

        /// <summary>
        /// 向前翻页按钮的图标高度，单位为像素，用于设置向前翻页按钮图标的尺寸大小。
        /// </summary>
        public int PrevHeight { get; set; }

        /// <summary>
        /// 向后翻页按钮的图标宽度，单位为像素，用于设置向后翻页按钮图标的尺寸大小。
        /// </summary>
        public int NextWidth { get; set; }

        /// <summary>
        /// 向后翻页按钮的图标高度，单位为像素，用于设置向后翻页按钮图标的尺寸大小。
        /// </summary>
        public int NextHeight { get; set; }

        /// <summary>
        /// 向前翻页按钮的图标颜色，用于设置向前翻页按钮图标的颜色。
        /// 支持多种颜色表示方式，如十六进制颜色码（例如 "#FF0000" 表示红色）、RGB函数（例如 "rgb(255, 0, 0)"）、RGBA函数（例如 "rgba(255, 0, 0, 0.5)"）等。
        /// </summary>
        public Color PrevColor { get; set; }

        /// <summary>
        /// 向后翻页按钮的图标颜色，用于设置向后翻页按钮图标的颜色。
        /// 支持的颜色格式与PrevColor属性相同。
        /// </summary>
        public Color NextColor { get; set; }

        /// <summary>
        /// 向前翻页按钮的图标不激活时（即翻页到头时）的颜色，用于设置相应状态下的图标颜色。
        /// 支持的颜色格式与PrevColor属性相同。
        /// </summary>
        public Color PrevInactiveColor { get; set; }

        /// <summary>
        /// 向后翻页按钮的图标不激活时（即翻页到头时）的颜色，用于设置相应状态下的图标颜色。
        /// 支持的颜色格式与NextColor属性相同。
        /// </summary>
        public Color NextInactiveColor { get; set; }

        /// <summary>
        /// 向前翻页按钮图标的图形样式配置。
        /// </summary>
        public LegendSymbolStyle PrevItemStyle { get; set; } = new LegendSymbolStyle();

        /// <summary>
        /// 向后翻页按钮图标的图形样式配置。
        /// </summary>
        public LegendSymbolStyle NextItemStyle { get; set; } = new LegendSymbolStyle();

        /// <summary>
        /// 向前翻页按钮图标阴影的模糊大小，用于设置向前翻页按钮图标阴影的模糊程度，数值越大阴影越模糊，单位为像素。
        /// 需同时结合PrevShadowColor、PrevShadowOffsetX和PrevShadowOffsetY等属性来完整呈现阴影效果。
        /// </summary>
        public int PrevShadowBlur { get; set; }

        /// <summary>
        /// 向前翻页按钮图标阴影颜色，用于设置向前翻页按钮图标阴影的颜色，支持的颜色格式与PrevColor属性相同。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public Color PrevShadowColor { get; set; }

        /// <summary>
        /// 向前翻页按钮图标阴影水平方向上的偏移距离，以像素为单位，正值表示阴影向右偏移，负值表示向左偏移，用于控制向前翻页按钮图标阴影在水平方向的位置。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public int PrevShadowOffsetX { get; set; }

        /// <summary>
        /// 向前翻页按钮图标阴影垂直方向上的偏移距离，以像素为单位，正值表示阴影向下偏移，负值表示向上偏移，用于控制向前翻页按钮图标阴影在垂直方向的位置。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public int PrevShadowOffsetY { get; set; }

        /// <summary>
        /// 向后翻页按钮图标阴影的模糊大小，用于设置向后翻页按钮图标阴影的模糊程度，数值越大阴影越模糊，单位为像素。
        /// 需同时结合NextShadowColor、NextShadowOffsetX和NextShadowOffsetY等属性来完整呈现阴影效果。
        /// </summary>
        public int NextShadowBlur { get; set; }

        /// <summary>
        /// 向后翻页按钮图标阴影颜色，用于设置向后翻页按钮图标阴影的颜色，支持的颜色格式与NextColor属性相同。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public Color NextShadowColor { get; set; }

        /// <summary>
        /// 向后翻页按钮图标阴影水平方向上的偏移距离，以像素为单位，正值表示阴影向右偏移，负值表示向左偏移，用于控制向后翻页按钮图标阴影在水平方向的位置。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public int NextShadowOffsetX { get; set; }

        /// <summary>
        /// 向后翻页按钮图标阴影垂直方向上的偏移距离，以像素为单位，正值表示阴影向下偏移，负值表示向上偏移，用于控制向后翻页按钮图标阴影在垂直方向的位置。
        /// 注意：此配置项生效的前提是，设置了相应的显示条件（如Show为true等）。
        /// </summary>
        public int NextShadowOffsetY { get; set; }
    }
}
